package com.skynet.supervision.services;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.skynet.supervision.aop.uac.beans.UACUserInfo;
import com.skynet.supervision.beans.request.user.AddUserRequest;
import com.skynet.supervision.beans.request.user.EditUserRequest;
import com.skynet.supervision.beans.request.user.GetDetailRequest;
import com.skynet.supervision.beans.request.user.ListByPageRequest;
import com.skynet.supervision.beans.request.users.RevisePassRequest;
import com.skynet.supervision.beans.request.users.UserAddRequest;
import com.skynet.supervision.beans.request.users.UserLoginRequest;
import com.skynet.supervision.beans.response.UserLoginResponse;
import com.skynet.supervision.beans.response.user.DeptUserItemResponse;
import com.skynet.supervision.beans.response.user.GetUserDetailsResponse;
import com.skynet.supervision.beans.response.user.UserItemResponse;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface UserService {

    UserLoginResponse login(UserLoginRequest request);

    UACUserInfo checkToken();

    void addUser(UserAddRequest request);

    void revisePass(RevisePassRequest request);

    void add(AddUserRequest request);

    GetUserDetailsResponse getuser(GetDetailRequest request);

    Page<GetUserDetailsResponse> listByPage(ListByPageRequest request);


    List<DeptUserItemResponse> deptUserList();

    String uploadHeaderImg(MultipartFile file);

    void edit(EditUserRequest request);

    void delete(String userId);

    List<UserItemResponse> listByMyDeptUser();
}
